﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ТипыНастроек
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"fc123cdb-da24-4aea-b752-6ca9c71c724c\", \"Представление\":\"НастройкиОтчета\"}")]
		НастройкиОтчета = 0,//Настройки отчета
		[EnumMember(Value = "{\"Ссылка\":\"7d3d91be-67d1-4f3a-af12-8a720a8a4c50\", \"Представление\":\"ОбщиеНастройкиОтчетов\"}")]
		ОбщиеНастройкиОтчетов = 1,//Общие настройки отчетов
		[EnumMember(Value = "{\"Ссылка\":\"a541c209-8c3e-4f45-9f14-1c6381bef611\", \"Представление\":\"НастройкиФормы\"}")]
		НастройкиФормы = 2,//Настройки формы
		[EnumMember(Value = "{\"Ссылка\":\"94947da2-b676-4616-8c69-bda58023b688\", \"Представление\":\"НастройкиПользователяНастройкиОтчета\"}")]
		НастройкиПользователяНастройкиОтчета = 3,//Настройки пользователя настройки отчета
		[EnumMember(Value = "{\"Ссылка\":\"0b316170-4d31-4632-a253-8aabcd97aabd\", \"Представление\":\"ПроизвольныеНастройки\"}")]
		ПроизвольныеНастройки = 4,//Произвольные настройки
	}
	public static partial class ТипыНастроек_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid НастройкиОтчета = new Guid("a96c52b7-1cc7-4c72-4aea-da24fc123cdb");//Настройки отчета
		public static readonly Guid ОбщиеНастройкиОтчетов = new Guid("728a12af-8a0a-504c-4f3a-67d17d3d91be");//Общие настройки отчетов
		public static readonly Guid НастройкиФормы = new Guid("631c149f-be81-11f6-4f45-8c3ea541c209");//Настройки формы
		public static readonly Guid НастройкиПользователяНастройкиОтчета = new Guid("a5bd698c-2380-88b6-4616-b67694947da2");//Настройки пользователя настройки отчета
		public static readonly Guid ПроизвольныеНастройки = new Guid("ab8a53a2-97cd-bdaa-4632-4d310b316170");//Произвольные настройки
		public static ТипыНастроек Получить(this ТипыНастроек Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ТипыНастроек Получить(this ТипыНастроек Значение, Guid Ссылка)
		{
			if(Ссылка == НастройкиОтчета)
			{
				return ТипыНастроек.НастройкиОтчета;
			}
			else if(Ссылка == ОбщиеНастройкиОтчетов)
			{
				return ТипыНастроек.ОбщиеНастройкиОтчетов;
			}
			else if(Ссылка == НастройкиФормы)
			{
				return ТипыНастроек.НастройкиФормы;
			}
			else if(Ссылка == НастройкиПользователяНастройкиОтчета)
			{
				return ТипыНастроек.НастройкиПользователяНастройкиОтчета;
			}
			else if(Ссылка == ПроизвольныеНастройки)
			{
				return ТипыНастроек.ПроизвольныеНастройки;
			}
			return ТипыНастроек.ПустаяСсылка;
		}
		public static byte[] Ключ(this ТипыНастроек Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ТипыНастроек Значение)
		{
			switch (Значение)
			{
				case ТипыНастроек.НастройкиОтчета: return НастройкиОтчета;
				case ТипыНастроек.ОбщиеНастройкиОтчетов: return ОбщиеНастройкиОтчетов;
				case ТипыНастроек.НастройкиФормы: return НастройкиФормы;
				case ТипыНастроек.НастройкиПользователяНастройкиОтчета: return НастройкиПользователяНастройкиОтчета;
				case ТипыНастроек.ПроизвольныеНастройки: return ПроизвольныеНастройки;
			}
			return Guid.Empty;
		}
	}
}